Memecahkan Masalah Azure Image Builder Service
Berlaku untuk: ✔️ VM Linux ✔️ Set skala fleksibel
Artikel ini membantu Anda memecahkan masalah umum yang mungkin Anda temui saat menggunakan Azure Image Builder Service.
Prasyarat
Saat Anda membuat build, pastikan build Anda memenuhi prasyarat berikut:
- Layanan Image Builder berkomunikasi dengan build VM menggunakan WinRM atau SSH, JANGAN menonaktifkan pengaturan ini sebagai bagian dari build.
- Image Builder akan membuat sumber daya sebagai bagian dari build, verifikasi Azure Policy tidak mencegah AIB membuat atau menggunakan sumber daya yang diperlukan.
- Membuat grup sumber daya IT
- Membuat akun penyimpanan tanpa firewall
- Verifikasi Azure Policy tidak memasang fitur yang tidak diinginkan pada build VM seperti Azure Extensions.
- Pastikan Image Builder memiliki izin yang benar untuk membaca/menulis gambar dan untuk terhubung ke penyimpanan Azure. Harap tinjau dokumentasi izin untuk CLI atau PowerShell.
- Image Builder akan gagal membangun jika skrip/perintah in-line gagal dengan kesalahan (non-nol kode keluar), pastikan Anda telah menguji dan memverifikasi skrip kustom yang berjalan tanpa kesalahan (kode keluar 0) atau memerlukan input pengguna. Untuk info selengkapnya, lihat dokumentasi berikut.
Kegagalan AIB dapat terjadi di 2 area:
- Pengiriman Template Gambar
- Buat Gambar
Memecahkan masalah kesalahan pengiriman template gambar
Kesalahan pengiriman template gambar dikembalikan saat pengiriman saja. Tidak ada log galat untuk kesalahan pengiriman template gambar. Jika ada kesalahan selama pengiriman, Anda dapat mengembalikan kesalahan dengan memeriksa status template, secara khusus meninjau ProvisioningState dan ProvisioningErrorMessage/provisioningError.
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage
Catatan
Untuk PowerShell, Anda harus memasang Modul PowerShell Azure Image Builder.
Penting
API 2021-10-01 kami memperkenalkan perubahan pada skema kesalahan yang akan menjadi bagian dari setiap rilis API di masa mendatang. Setiap pelanggan yang telah mengotomatiskan layanan kami harus menerima output kesalahan baru saat beralih ke versi API 2021-10-01 atau yang lebih baru (skema yang baru ditunjukkan di bawah). Sebaiknya setelah pelanggan beralih ke versi API baru (2021-10-01 dan seterusnya), mereka tidak kembali ke versi yang lebih lama karena mereka harus mengubah otomatisasi mereka lagi untuk menerima skema kesalahan yang lama. Kami tidak mengantisipasi perubahan skema kesalahan lagi di rilis mendatang.
Untuk API versi 2020-02-14 dan yang lebih lama, output kesalahan akan terlihat seperti yang berikut:
{
"code": "ValidationFailed",
"message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute//images//imageName'. Please review http://aka.ms/azvmimagebuildertmplref for details on fields requirements in the Image Builder Template."
}
Untuk API versi 2021-10-01 dan yang lebih baru, output kesalahan akan terlihat seperti yang berikut:
{
"error": {
"code": "ValidationFailed",
"message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute//images//imageName'. Please review http://aka.ms/azvmimagebuildertmplref for details on fields requirements in the Image Builder Template."
}
}
Bagian berikut mencakup panduan resolusi masalah untuk kesalahan pengiriman template gambar umum.
Pembaruan/Peningkatan template gambar saat ini tidak didukung
Kesalahan
'Conflict'. Details: Update/Upgrade of image templates is currently not supported
Penyebab
Template sudah ada.
Solusi
Jika Anda mengirimkan template konfigurasi gambar dan pengiriman gagal, artefak template yang gagal masih ada. Menghapus template yang gagal.
Operasi sumber daya selesai dengan status penyediaan terminal 'Gagal'
Kesalahan
Microsoft.VirtualMachineImages/imageTemplates 'helloImageTemplateforSIG01' failed with message '{
"status": "Failed",
"error": {
"code": "ResourceDeploymentFailure",
"message": "The resource operation completed with terminal provisioning state 'Failed'.",
"details": [
{
"code": "InternalOperationError",
"message": "Internal error occurred."
Penyebab
Dalam kebanyakan kasus, kesalahan kegagalan penyebaran sumber daya terjadi karena izin yang hilang.
Solusi
Bergantung pada skenario Anda, Azure Image Builder mungkin memerlukan izin untuk:
- Gambar sumber atau grup sumber daya Azure Compute Gallery (sebelumnya dikenal sebagai Shared Image Gallery)
- Gambar distribusi atau sumber daya Azure Compute Gallery
- Akun penyimpanan, kontainer, atau objek besar biner yang diakses penyesuai File.
Untuk informasi selengkapnya tentang mengonfigurasi izin, lihat Mengonfigurasi izin Layanan Azure Image Builder menggunakan Azure CLI atau Mengonfigurasi izin Azure Image Builder Service menggunakan PowerShell
Kesalahan dalam mendapatkan gambar terkelola
Kesalahan
Build (Managed Image) step failed: Error getting Managed Image '/subscriptions/.../providers/Microsoft.Compute/images/mymanagedmg1': Error getting managed image (...): compute.
ImagesClient#Get: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error.
Status=403 Code="AuthorizationFailed" Message="The client '......' with object id '......' does not have authorization to perform action 'Microsoft.Compute/images/read' over scope
Penyebab
Izin tidak ada.
Solusi
Bergantung pada skenario Anda, Azure Image Builder mungkin memerlukan izin untuk:
- Gambar sumber atau grup sumber daya Azure Compute Gallery
- Gambar distribusi atau sumber daya Azure Compute Gallery
- Akun penyimpanan, kontainer, atau objek besar biner yang diakses penyesuai File.
Untuk informasi selengkapnya tentang mengonfigurasi izin, lihat Mengonfigurasi izin Layanan Azure Image Builder menggunakan Azure CLI atau Mengonfigurasi izin Azure Image Builder Service menggunakan PowerShell
Tahap build gagal untuk versi gambar
Kesalahan
Build (Shared Image Version) step failed for Image Version '/subscriptions/.../providers/Microsoft.Compute/galleries/.../images/... /versions/0.23768.4001': Error getting Image Version '/subscriptions/.../resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001': Error getting image version '... :0.23768.4001': compute.GalleryImageVersionsClient#Get: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error.
Status=404 Code="ResourceNotFound" Message="The Resource 'Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001' under resource group '<rgName>' was not found."
Penyebab
Azure Image Builder tidak dapat menemukan gambar sumber.
Solusi
Pastikan gambar sumber sudah benar dan ada di lokasi Azure Image Builder Service.
Mengunduh file eksternal ke file lokal
Kesalahan
Downloading external file (<myFile>) to local file (xxxxx.0.customizer.fp) [attempt 1 of 10] failed: Error downloading '<myFile>' to 'xxxxx.0.customizer.fp'..
Penyebab
Nama atau lokasi file keliru, atau lokasinya tak bisa dijangkau.
Solusi
Pastikan file tersebut dapat dijangkau. Pastikan nama dan lokasi sudah benar.
Memecahkan masalah kegagalan buat
Untuk kegagalan buat gambar, Anda bisa mendapatkan kesalahan dari lastrunstatus, lalu meninjau detail dalam kustomisasi.log.
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object LastRunStatus, LastRunStatusMessage
Log kustomisasi
Saat buat gambar berjalan, log dibuat dan disimpan di akun penyimpanan. Azure Image Builder membuat akun penyimpanan di grup sumber daya sementara saat Anda membuat artefak template gambar.
Nama akun penyimpanan menggunakan pola berikut: IT_<ImageResourceGroupName><TemplateName><GUID>
Misalnya, IT_aibmdi_helloImageTemplateLinux01.
Anda dapat melihat kustomisasi.log di akun penyimpanan di grup sumber daya dengan memilih Akun Azure Storage>Objek Besar Biner>packerlogs. Kemudian pilih direktori >kustomisasi.log.
Memahami log kustomisasi
Log adalah verbose. Mencakup build gambar termasuk masalah pada distribusi gambar, seperti replikasi Azure Compute Gallery. Kesalahan ini muncul dalam pesan kesalahan status template gambar.
Kustomisasi.log mencakup tahapan berikut:
Sebarkan buat VM dan dependensi menggunakan template ARM ke tahap IT_ grup sumber daya pentahapan. Tahap ini mencakup beberapa POSTING ke penyedia sumber daya Azure Image Builder:
Azure request method="POST" request="https://management.azure.com/subscriptions/<subID>/resourceGroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-cccc-cccc-ccccccc/providers/Microsoft.Storage/storageAccounts .. PACKER OUT ==> azure-arm: Deploying deployment template ... ..Status tahap penyebaran. Tahap ini mencakup status setiap penyebaran sumber daya:
PACKER ERR 2020/04/30 23:28:50 packer: 2020/04/30 23:28:50 Azure request method="GET" request="https://management.azure.com/subscriptions/<subID>/resourcegroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-4505-ae28-6661e43fac48/providers/Microsoft.Resources/deployments/pkrdp51lc0339jg/operationStatuses/08586133176207523519?[REDACTED]" body=""Hubungkan ke tahap buat VM.
Jika Windows, Azure Image Builder Service tersambung menggunakan WinRM:
PACKER ERR 2020/04/30 23:30:50 packer: 2020/04/30 23:30:50 Waiting for WinRM, up to timeout: 10m0s .. PACKER OUT azure-arm: WinRM connected.Jika Linux, Azure Image Builder Service akan terhubung menggunakan SSH:
PACKER OUT ==> azure-arm: Waiting for SSH to become available... PACKER ERR 2019/12/10 17:20:51 packer: 2020/04/10 17:20:51 [INFO] Waiting for SSH, up to timeout: 20m0s PACKER OUT ==> azure-arm: Connected to SSH!Jalankan tahap kustomisasi. Saat kustomisasi berjalan, Anda dapat mengidentifikasinya dengan meninjau kustomisasi.log. Cari (telemetri) .
(telemetry) Starting provisioner windows-update (telemetry) ending windows-update (telemetry) Starting provisioner powershell (telemetry) ending powershell (telemetry) Starting provisioner file (telemetry) ending file (telemetry) Starting provisioner windows-restart (telemetry) ending windows-restart (telemetry) Finalizing. - This means the build hasfinishedTahap de-provisi. Azure Image Builder menambahkan penyesuai tersembunyi. Langkah de-provisi ini bertanggung jawab untuk menyiapkan VM untuk de-provisi. Menjalankan Windows Sysprep (menggunakan c:\DeprovisioningScript.ps1), atau di Linux waagent deprovision (menggunakan /tmp/DeprovisioningScript.sh).
Contohnya:
PACKER ERR 2020/03/04 23:05:04 [INFO] (telemetry) Starting provisioner powershell PACKER ERR 2020/03/04 23:05:04 packer: 2020/03/04 23:05:04 Found command: if( TEST-PATH c:\DeprovisioningScript.ps1 ){cat c:\DeprovisioningScript.ps1} else {echo "Deprovisioning script [c:\DeprovisioningScript.ps1] could not be found. Image build may fail or the VM created from the Image may not boot. Please make sure the deprovisioning script is not accidentally deleted by a Customizer in the Template."}Bersihkan tahap. Setelah buat selesai, sumber daya Azure Image Builder akan dihapus.
PACKER ERR ==> azure-arm: Deleting individual resources ... ... PACKER ERR 2020/02/04 02:04:23 packer: 2020/02/04 02:04:23 Azure request method="DELETE" request="https://management.azure.com/subscriptions/<subId>/resourceGroups/IT_aibDevOpsImg_t_vvvvvvv_yyyyyy-de5f-4f7c-92f2-xxxxxxxx/providers/Microsoft.Network/networkInterfaces/pkrnijamvpo08eo?[REDACTED]" body="" ... PACKER ERR ==> azure-arm: The resource group was not created by Packer, not deleting ...
Tips untuk memecahkan masalah skrip/kustomisasi sebaris
- Uji kode sebelum memasoknya ke Image Builder
- Pastikan Azure Policy dan Firewall memungkinkan konektivitas ke sumber daya jarak jauh.
- Komentar output ke konsol, seperti menggunakan
Write-Hostatauechoakan memungkinkan Anda untuk mencari kustomisasi.log.
Pemecahan masalah kesalahan buat umum
Kegagalan perintah buat packer
Kesalahan
"provisioningState": "Succeeded",
"lastRunStatus": {
"startTime": "2020-04-30T23:24:06.756985789Z",
"endTime": "2020-04-30T23:39:14.268729811Z",
"runState": "Failed",
"message": "Failed while waiting for packerizer: Microservice has failed: Failed while processing request: Error when executing packerizer: Packer build command has failed: exit status 1. During the image build, a failure has occurred, please review the build log to identify which build/customization step failed. For more troubleshooting steps go to https://aka.ms/azvmimagebuilderts. Image Build log location: https://xxxxxxxxxx.blob.core.windows.net/packerlogs/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/customization.log. OperationId: xxxxxx-5a8c-4379-xxxx-8d85493bc791. Use this operationId to search packer logs."
Penyebab
Kegagalan kustomisasi.
Solusi
Tinjau log untuk menemukan kegagalan penyesuai. Cari (telemetri) .
Contohnya:
(telemetry) Starting provisioner windows-update
(telemetry) ending windows-update
(telemetry) Starting provisioner powershell
(telemetry) ending powershell
(telemetry) Starting provisioner file
(telemetry) ending file
(telemetry) Starting provisioner windows-restart
(telemetry) ending windows-restart
(telemetry) Finalizing. - This means the build has finished
Batas waktu terlampaui
Kesalahan
Deployment failed. Correlation ID: xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx. Failed in building/customizing image: Failed while waiting for packerizer: Timeout waiting for microservice to complete: 'context deadline exceeded'
Penyebab
Buat melebihi batas waktu buat. Kesalahan ini terlihat di 'lastrunstatus'.
Solusi
Tinjau kustomisasi.log. Identifikasi penyesuai terakhir yang akan dijalankan. Cari
(telemetry)mulai dari bagian bawah log.Periksa kustomisasi skrip. Kustomisasi mungkin tidak menekan interaksi pengguna untuk perintah, seperti opsi
quiet. Misalnya,apt-get install -ymenghasilkan eksekusi skrip yang menunggu interaksi pengguna.Jika Anda menggunakan penyesuai
Fileuntuk mengunduh artefak yang lebih besar dari 20 MB, lihat bagian solusi.Tinjau kesalahan dan dependensi dalam skrip yang dapat menyebabkan skrip menunggu.
Jika Anda mengharapkan bahwa kustomisasi membutuhkan lebih banyak waktu, tingkatkan buildTimeoutInMinutes. Defaultnya adalah empat jam.
Jika Anda memiliki tindakan intensif sumber daya, seperti mengunduh gigabyte file, pertimbangkan ukuran VM buat yang mendasarinya. Layanan ini menggunakan Standard_D1_v2 VM. VM memiliki, 1 vCPU dan 3,5 GB memori. Jika Anda mengunduh 50 GB, ini kemungkinan akan menghabiskan sumber daya VM dan menyebabkan kegagalan komunikasi antara Azure Image Builder Service dan membuat VM. Coba lagi buat dengan VM memori yang lebih besar, dengan mengatur VM_Size.
Waktu pengunduhan file yang lama
Kesalahan
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
myBigFile.zip 826 B / 826000 B 1.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
myBigFile.zip 1652 B / 826000 B 2.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
..
hours later...
..
myBigFile.zip 826000 B / 826000 B 100.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
Penyebab
Penyesuai file sedang mengunduh file besar.
Solusi
Penyesuai file hanya cocok untuk unduhan file kecil yang kurang dari 20 MB. Untuk unduhan file yang lebih besar, gunakan skrip atau perintah sebaris. Misalnya, di Linux, Anda dapat menggunakan wget atau curl. Di Windows, Anda dapat menggunakan Invoke-WebRequest.
Kesalahan yang menanti di Azure Compute Gallery
Kesalahan
Deployment failed. Correlation ID: XXXXXX-XXXX-XXXXXX-XXXX-XXXXXX. Failed in distributing 1 images out of total 1: {[Error 0] [Distribute 0] Error publishing MDI to Azure Compute Gallery:/subscriptions/<subId>/resourceGroups/xxxxxx/providers/Microsoft.Compute/galleries/xxxxx/images/xxxxxx, Location:eastus. Error: Error returned from SIG client while publishing MDI to Azure Compute Gallery for dstImageLocation: eastus, dstSubscription: <subId>, dstResourceGroupName: XXXXXX, dstGalleryName: XXXXXX, dstGalleryImageName: XXXXXX. Error: Error waiting on Azure Compute Gallery future for resource group: XXXXXX, gallery name: XXXXXX, gallery image name: XXXXXX.Error: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded}
Penyebab
Image Builder kehabisan waktu menunggu gambar ditambahkan dan direplikasi ke Azure Compute Gallery. Jika gambar disuntikkan ke SIG, dapat diasumsikan buat gambar berhasil. Namun, proses keseluruhan gagal, karena penyusun gambar sedang menunggu Azure Compute Gallery untuk menyelesaikan replikasi. Meskipun buat telah gagal, replikasi berlanjut. Anda bisa mendapatkan properti versi gambar dengan memeriksa runOutput distribusi.
$runOutputName=<distributionRunOutput>
az resource show \
--ids "/subscriptions/$subscriptionID/resourcegroups/$imageResourceGroup/providers/Microsoft.VirtualMachineImages/imageTemplates/$imageTemplateName/runOutputs/$runOutputName" \
--api-version=2020-02-14
Solusi
Tingkatkan buildTimeoutInMinutes.
Peristiwa informasi sumber daya Windows rendah
Kesalahan
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 1% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 51% cpu; 35% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 21% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 21% cpu; 36% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 90% cpu; 32% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for the Windows Modules Installer to exit...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'PowerShell -ExecutionPolicy Bypass -OutputFormat Text -File C:/Windows/Temp/packer-windows-update-elevated.ps1' exited with code: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Restarting the machine...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Waiting for machine to become available...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] starting remote command: shutdown.exe -f -r -t 0 -c "packer restart"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'shutdown.exe -f -r -t 0 -c "packer restart"' exited with code: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: A system shutdown is in progress.(1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] starting remote command: shutdown.exe -f -r -t 60 -c "packer restart test"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] command 'shutdown.exe -f -r -t 60 -c "packer restart test"' exited with code: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 Retryable error: Machine not yet available (exit status 1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT Build 'azure-arm' errored: unexpected EOF
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT
Penyebab
Kelelahan sumber daya. Masalah ini biasanya terlihat dengan Windows Update berjalan menggunakan ukuran VM buat default D1_V2.
Solusi
Memperbesar ukuran VM buat.
Buat selesai tetapi tidak ada artefak yang dibuat
Kesalahan
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT Build 'azure-arm' errored: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR ==> Some builds didn't complete successfully and had errors:
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR 2020/04/30 22:29:23 machine readable: azure-arm,error []string{"Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded"}
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT ==> Some builds didn't complete successfully and had errors:
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR ==> Builds finished but no artifacts were created.
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT --> azure-arm: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR 2020/04/30 22:29:23 Cancelling builder after context cancellation context canceled
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR 2020/04/30 22:29:23 [INFO] (telemetry) Finalizing.
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT ==> Builds finished but no artifacts were created.
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR 2020/04/30 22:29:24 waiting for all plugin processes to complete...
Done exporting Packer logs to Azure for Packer prefix: [a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT
Penyebab
Batas waktu yang disebabkan oleh menunggu sumber daya Azure yang diperlukan untuk dibuat.
Solusi
Jalankan ulang buat untuk mencoba lagi.
Sumber daya tidak ditemukan
Kesalahan
"provisioningState": "Succeeded",
"lastRunStatus": {
"startTime": "2020-05-01T00:13:52.599326198Z",
"endTime": "2020-05-01T00:15:13.62366898Z",
"runState": "Failed",
"message": "network.InterfacesClient#UpdateTags: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code=\"ResourceNotFound\" Message=\"The Resource 'Microsoft.Network/networkInterfaces/aibpls7lz2e.nic.4609d697-be0a-4cb0-86af-49b6fe877fe1' under resource group 'IT_aibImageRG200_window2019VnetTemplate01_9988723b-af56-413a-9006-84130af0e9df' was not found.\""
},
Penyebab
Izin tidak ada.
Solusi
Periksa ulang Azure Image Builder memiliki semua izin yang diperlukan.
Untuk informasi selengkapnya tentang mengonfigurasi izin, lihat Mengonfigurasi izin Layanan Azure Image Builder menggunakan Azure CLI atau Mengonfigurasi izin Azure Image Builder Service menggunakan PowerShell
Waktu sysprep
Kesalahan
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while ((Get-Service RdAgent) -and ((Get-Service RdAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Sysprepping VM ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: & $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while($true) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: $imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output $imageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Start-Sleep -s 5
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Sysprep complete ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Waiting for GA Service (RdAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Sysprepping VM ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_COMPLETE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: Get-Service : Cannot find any service with service name 'WindowsAzureGuestAgent'.
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: At C:\DeprovisioningScript.ps1:6 char:9
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service Window ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + CategoryInfo : ObjectNotFound: (WindowsAzureGuestAgent:String) [Get-Service], ServiceCommandException
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 Cancelling builder after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT Cancelling build after receiving terminated
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling provisioning due to context cancellation: context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling hook after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...
Penyebab
Penyebabnya mungkin masalah waktu karena ukuran D1_V2 VM. Jika kustomisasi dibatasi dan dijalankan dalam waktu kurang dari tiga detik, perintah sysprep dijalankan oleh Azure Image Builder untuk de-provisi. Ketika Azure Image Builder melakukan de-provisi, perintah sysprep memeriksa WindowsAzureGuestAgent, yang mungkin tidak sepenuhnya dipasang menyebabkan masalah waktu.
Solusi
Memperbesar ukuran VM. Atau, Anda dapat menambahkan kustomisasi tidur PowerShell 60 detik untuk menghindari masalah waktu.
Membatalkan penyusun setelah konteks pembatalan konteks dibatalkan
Kesalahan
PACKER ERR 2020/03/26 22:11:23 Cancelling builder after context cancellation context canceled
PACKER OUT Cancelling build after receiving terminated
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling hook after context cancellation context canceled
..
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling provisioning due to context cancellation: context canceled
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [ERROR] Remote command exited without exit status or exit signal.
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [INFO] RPC endpoint: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] 148974 bytes written for 'stdout'
PACKER ERR 2020/03/26 22:11:25 [INFO] 0 bytes written for 'stderr'
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC client: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC endpoint: Communicator ended with: 2300218
Penyebab
Layanan Image Builder menggunakan port 22(Linux), atau 5986(Windows)untuk terhubung ke buat VM, ini terjadi ketika layanan terputus koneksi dari buat VM selama buat gambar. Alasan pemutusan koneksi dapat bervariasi, tetapi mengaktifkan atau mengonfigurasi firewall dalam skrip dapat memblokir port di atas.
Solusi
Tinjau skrip Anda untuk perubahan/pengaktifan firewall, atau perubahan pada SSH atau WinRM, dan pastikan setiap perubahan memungkinkan konektivitas konstan antara layanan dan membuat VM pada port di atas. Untuk informasi selengkapnya tentang jaringan Image Builder, silakan tinjau persyaratannya.
Kesalahan JWT dalam log di awal build
Kesalahan
Di awal proses build, build gagal dan log menunjukkan kesalahan JWT:
PACKER OUT Error: Failed to prepare build: "azure-arm"
PACKER ERR
PACKER OUT
PACKER ERR * client_jwt will expire within 5 minutes, please use a JWT that is valid for at least 5 minutes
PACKER OUT 1 error(s) occurred:
Penyebab
Nilai buildTimeoutInMinutes dalam kerangka diatur ke antara 1 dan 5 menit.
Solusi
Seperti yang dijelaskan dalam Membuat templat Azure Image Builder, batas waktu harus diatur ke 0 untuk menggunakan default atau di atas 5 menit untuk mengambil alih default. Ubah batas waktu dalam templat Anda menjadi 0 untuk menggunakan default atau minimal 6 menit.
Kesalahan penghapusan sumber daya
Kesalahan
Sumber daya perantara dibersihkan menjelang akhir build dan log kustomisasi mungkin menunjukkan beberapa kesalahan penghapusan sumber daya:
PACKER OUT ==> azure-arm: Error deleting resource. Will retry.
...
PACKER OUT ==> azure-arm: Error: network.PublicIPAddressesClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="PublicIPAddressCannotBeDeleted" Message=...
...
PACKER ERR 2022/03/07 18:43:06 packer-plugin-azure plugin: 2022/03/07 18:43:06 Retryable error: network.SecurityGroupsClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="InUseNetworkSecurityGroupCannotBeDeleted"...
Penyebab
Pesan log kesalahan ini sebagian besar tidak berbahaya karena penghapusan sumber daya dicoba kembali beberapa kali dan secara umum akhirnya berhasil. Ini dapat diverifikasi dengan terus mengikuti log penghapusan hingga pesan sukses terlihat. Atau, grup sumber daya pementasan dapat diperiksa untuk mengonfirmasi apakah sumber daya telah dihapus atau belum.
[Ini sangat penting dalam kasus kegagalan build di mana pesan kesalahan ini dapat menyebabkan pengamat menyimpulkannya sebagai alasan kegagalan sementara kesalahan sebenarnya ada di tempat lain.]
Tugas DevOps
Pemecahan masalah tugas
Tugas hanya akan gagal jika terjadi kesalahan selama kustomisasi, ketika ini terjadi, tugas akan melaporkan kegagalan dan meninggalkan grup sumber daya pentahapan, dengan log, sehingga Anda dapat mengidentifikasi masalah.
Untuk menemukan log, Anda perlu mengetahui nama template, masuk ke alur >build gagal> ke dalam tugas AIB Azure DevOps, maka Anda akan melihat log dan nama template:
start reading task parameters...
found build at: /home/vsts/work/r1/a/_ImageBuilding/webapp
end reading parameters
getting storage account details for aibstordot1556933914
created archive /home/vsts/work/_temp/temp_web_package_21475337782320203.zip
Source for image: { type: 'SharedImageVersion',
imageVersionId: '/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/<galleryName>/images/<imageDefName>/versions/<imgVersionNumber>' }
template name: t_1556938436xxx
Buka portal, cari nama template di grup sumber daya, lalu cari grup sumber daya dengan IT_*. Buka akun penyimpanan log >blob> kontainer>.
Pemecahan masalah buat yang berhasil
Mungkin ada beberapa kasus di mana Anda perlu menyelidiki buat yang sukses, dan ingin meninjau log. Seperti disebutkan, jika buat gambar berhasil, grup sumber daya pentahapan yang terdiri atas log akan dihapus sebagai bagian dari pembersihan. Namun, hal yang dapat Anda lakukan, adalah memperkenalkan tidur setelah perintah sebaris, lalu mendapatkan log saat buat dijeda. Untuk melakukan ini, ikuti langkah-langkah berikut:
- Perbarui perintah sebaris, dan tambahkan: Tulis-Hosting / Echo “Tidur” - akan memungkinkan Anda untuk mencari di log
- Tambahkan tidur minimal 10 menit, Anda dapat menggunakan perintah Start-Sleep, atau
SleepLinux. - Gunakan metode di atas untuk mengidentifikasi lokasi log, lalu terus mengunduh/memeriksa log hingga tidur.
Operasi dibatalkan
Kesalahan
2020-05-05T18:28:24.9280196Z ##[section]Starting: Azure VM Image Builder Task
2020-05-05T18:28:24.9609966Z ==============================================================================
2020-05-05T18:28:24.9610739Z Task : Azure VM Image Builder Test
2020-05-05T18:28:24.9611277Z Description : Build images using Azure Image Builder resource provider.
2020-05-05T18:28:24.9611608Z Version : 1.0.18
2020-05-05T18:28:24.9612003Z Author : Microsoft Corporation
2020-05-05T18:28:24.9612718Z Help : For documentation, and end to end example, please visit: http://aka.ms/azvmimagebuilderdevops
2020-05-05T18:28:24.9613390Z ==============================================================================
2020-05-05T18:28:26.0651512Z start reading task parameters...
2020-05-05T18:28:26.0673377Z found build at: d:\a\r1\a\_AppsAndImageBuilder\webApp
2020-05-05T18:28:26.0708785Z end reading parameters
2020-05-05T18:28:26.0745447Z getting storage account details for aibstagstor1565047758
2020-05-05T18:28:29.8812270Z created archive d:\a\_temp\temp_web_package_09737279437949953.zip
2020-05-05T18:28:33.1568013Z Source for image: { type: 'PlatformImage',
2020-05-05T18:28:33.1584131Z publisher: 'MicrosoftWindowsServer',
2020-05-05T18:28:33.1585965Z offer: 'WindowsServer',
2020-05-05T18:28:33.1592768Z sku: '2016-Datacenter',
2020-05-05T18:28:33.1594191Z version: '14393.3630.2004101604' }
2020-05-05T18:28:33.1595387Z template name: t_1588703313152
2020-05-05T18:28:33.1597453Z starting put template...
2020-05-05T18:28:52.9278603Z put template: Succeeded
2020-05-05T18:28:52.9281282Z starting run template...
2020-05-05T19:33:14.3923479Z ##[error]The operation was canceled.
2020-05-05T19:33:14.3939721Z ##[section]Finishing: Azure VM Image Builder Task
Penyebab
Jika buat tidak dibatalkan oleh pengguna, buat tersebut dibatalkan oleh Agen Pengguna Azure DevOps. Kemungkinan besar batas waktu 1 jam telah terjadi karena kemampuan Azure DevOps. Jika Anda menggunakan proyek dan agen pribadi, Anda mendapatkan 60 menit waktu buat. Jika buat melebihi batas waktu, DevOps membatalkan tugas yang sedang berjalan.
Untuk informasi selengkapnya tentang kemampuan dan batasan Azure DevOps, lihat Agen yang dihosting Microsoft
Solusi
Anda dapat menghosting agen DevOps Anda sendiri, atau melihat untuk mengurangi waktu buat Anda. Misalnya, jika Anda mendistribusikan ke Azure Compute Gallery, replikasikan ke satu wilayah. Jika Anda ingin mereplikasi secara asinkron.
Masuk Windows Lambat: ‘Silakan tunggu Alat Penginstal Modul Windows’
Kesalahan
Setelah Anda membuat gambar Windows 10 dengan Image Builder, lalu membuat VM dari gambar, RDP, dan harus menunggu beberapa menit pada masuk pertama melihat layar biru dengan pesan:
Please wait for the Windows Modules Installer
Solusi
Pertama dalam pemeriksaan buat gambar bahwa tidak ada reboot luar biasa yang diperlukan dengan menambahkan penyesuai Windows Restart sebagai kustomisasi terakhir, dan bahwa semua penginstalan perangkat lunak selesai. Terakhir, tambahkan opsi /mode:vm ke sysprep default yang digunakan AIB, lihat di bawah, ‘VM yang dibuat dari gambar AIB tidak berhasil dibuat’ > ‘Mengesampingkan Perintah’
VM yang dibuat dari gambar AIB tidak berhasil dibuat
Secara default, Azure Image Builder menjalankan kode de-provisi di akhir setiap fase kustomisasi gambar untuk membuat generalisasi gambar. Membuat generalisasi adalah proses di mana gambar disiapkan agar digunakan kembali untuk membuat beberapa VM dan Anda dapat meneruskan pengaturan VM, seperti nama hosting, nama pengguna, dll. Untuk Windows, Azure Image Builder menjalankan Sysprep, dan untuk Linux Azure Image Builder berjalanwaagent -deprovision.
Untuk Windows, Azure Image Builder menggunakan perintah Sysprep generik. Namun, ini mungkin tidak cocok untuk setiap generalisasi Windows yang sukses. Azure Image Builder memungkinkan Anda mengustomisasi perintah Sysprep. Note Azure Image Builder adalah alat automasi gambar. Bertanggung jawab untuk menjalankan perintah Sysprep agar berhasil. Namun, Anda mungkin memerlukan perintah Sysprep yang berbeda untuk membuat gambar Anda dapat digunakan kembali. Untuk Linux, Azure Image Builder menggunakan perintah waagent -deprovision+user generik. Untuk informasi selengkapnya, lihat Dokumentasi Agen Microsoft Azure.
Jika Anda memigrasikan kustomisasi yang ada dan menggunakan perintah Sysprep/waagen yang berbeda, Anda dapat mencoba perintah generik penyusun gambar. Jika pembuatan VM gagal, gunakan perintah Sysprep/waagent Anda sebelumnya.
Catatan
Jika AIB berhasil membuat gambar kustom Windows, dan Anda membuat VM darinya, maka menemukan VM tidak akan berhasil (Misalnya, perintah pembuatan VM tidak selesai/batas waktu), Anda perlu meninjau dokumentasi Windows Server Sysprep. Atau, Anda dapat menaikkan permintaan dukungan dengan tim Dukungan Layanan Pelanggan Windows Server Sysprep, yang dapat memecahkan masalah dan memberi saran tentang perintah Sysprep yang benar.
Lokasi Perintah dan Nama File
Windows:
c:\DeprovisioningScript.ps1
Linux:
/tmp/DeprovisioningScript.sh
Perintah Sysprep: Windows
Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
while ((Get-Service RdAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
while ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Sysprepping VM ...'
if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
}
& $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
while($true) {
$imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
Write-Output $imageState
if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
Start-Sleep -s 5
}
Write-Output '>>> Sysprep complete ...'
Perintah Deprovisi: Linux
/usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync
Mengesampingkan Perintah
Untuk mengambil alih perintah, gunakan pembuat provisi skrip PowerShell atau shell untuk membuat file perintah dengan nama file yang tepat, dan memasukkannya ke dalam direktori yang benar. Azure Image Builder membaca perintah dan output ini ditulis ke kustomisasi.log.
Mendapatkan Dukungan
Jika Anda telah melihat panduan, dan masih tidak dapat memecahkan masalah, Anda dapat membuka kasus dukungan. Saat melakukannya, silakan pilih produk dan topik dukungan yang tepat, melakukan ini akan melibatkan tim dukungan Azure VM Image Builder.
Memilih produk kasus:
Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder
Langkah berikutnya
Untuk mengetahui informasi selengkapnya, lihat ringkasan Azure Image Builder.